import { loginAPI, getUserInfo } from '@/api/user'

export default {
  namespaced: true,
  state: {
    token: null,
    clientToken: null,
    userInfo: {}
  },
  mutations: {
    setToken(state, token) {
      state.token = token
    },
    removeToken(state) {
      state.token = null
    },
    setclientToken(state, clientToken) {
      state.clientToken = clientToken
    },
    removeclientToken(state) {
      state.clientToken = null
    },
    // 设置用户信息
    setUsetInfo(state, userInfo) {
      state.userInfo = userInfo
    },
    // 删除用户信息
    removeUserInfo(state) {
      state.userInfo = {}
    }
  },
  actions: {
    // 封装一个登录action  // (context, data)  // context必须要填
    async loginAction({ commit }, data) {
      // 经过响应拦截器的处理之后 这里的result实际上就是 token
      const res = await loginAPI(data) // 实际上就是一个promise  result就是执行的结果
      // axios默认给数据加了一层data
      // 表示登录接口调用成功 也就是意味着你的用户名和密码是正确的
      // 现在有用户token
      // actions 修改state 必须通过mutations
      console.log(res)
      commit('setToken', res)
    },
    // 获取用户资料action
    async getUserInfoAction({ commit }, id) {
      const res = await getUserInfo(id)
      console.log(res)
      commit('setUsetInfo', res)
    }
  }
}
